// pages/addAnimal/addAnimal.js
var app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: { // mark: data
    photo: '', //图片地址，单张
    db_photo: '', //数据库返回的图片地址
    name: '',
    desc: '',
    locdesc: '',
    type: '',
    typeForChoose: [
      'dog',
      'cat',
      'bird',
      'insect'
    ],
    index: 0,
    user: {},
  },
  nameIn(e) {
    this.data.name = e.detail.value;
    // console.log(this.data.name)
  },
  descIn(e) {
    this.data.desc = e.detail.value;
    // console.log(this.data.desc)
  },
  locdescIn(e) {
    this.data.locdesc = e.detail.value;
    // console.log(this.data.desc)
  },
  changeType(e) {
    // console.log('picker发送选择改变，携带值为', e.detail.value)
    var types = this.data.typeForChoose;
    this.setData({
      index: e.detail.value,
      type: types[e.detail.value]
    })
  },
  chooseImg() {
    // console.log('选择图片')
    var that = this;
    wx.chooseMedia({
      count: 1,
      mediaType: ['image'],
      sizeType: ['compressed'],
      sourceType: ['album', 'camera'],
      camera: 'back',
      success(res) {
        // console.log(res.tempFiles[0].tempFilePath)
        var tempPhoto = res.tempFiles[0].tempFilePath;
        that.setData({
          photo: tempPhoto,
        });
        // console.log(that.data.photo)
        // that.uploadImage(res.tempFiles);
      },
      fail(res) {
        console.log("uploadfail")
      }
    })
  },
  uploadImage() {
    console.log(this.data.photo)
    let that = this;
    wx.uploadFile({
      url: 'https://api.fracher21.top/spotit-static/upload', // 后端接口地址
      filePath: that.data.photo,
      name: 'image', // !!注意
      formData: {
        'category': 'test' // 可选：test（测试用）, head（用户头像）, post（帖子图片），animal（动物头像），common（通用，如默认头像），写其他的会上传失败并返回错误信息
      },
      success: function (res) {
        // 获取后端返回的图片URL
        console.log(res.data);
        that.setData({
          db_photo: res.data.url,
        })
      }
    })
  },
  upLoadAnimal() {
    if (this.data.name && this.data.type) {
      if (this.data.photo) {
        this.confirmUpLoad();
      } else {
        wx.showModal({
          title: '提示',
          content: '您还未提供照片，确定要上传吗？',
          complete: (res) => {
            if (res.cancel) {
              return;
            }
            if (res.confirm) {
              this.confirmUpLoad();
            }
          }
        })
      }
    } else {
      wx.showToast({
        title: '信息不完善哦',
        icon: 'error',
        duration: 2000,
      })
    }
  },
  confirmUpLoad() {
    let that = this;
    new Promise( (resolve, reject) => {
      // ... some code
      if (that.data.photo != '') {
        // that.uploadImage(that.data.photo)
        console.log(that.data.photo)
        wx.uploadFile({
          url: 'https://api.fracher21.top/spotit-static/upload', // 后端接口地址
          filePath: that.data.photo,
          name: 'image', // !!注意
          formData: {
            'category': 'animal' // 可选：test（测试用）, head（用户头像）, post（帖子图片），animal（动物头像），common（通用，如默认头像），写其他的会上传失败并返回错误信息
          },
          success: function (res) {
            // 获取后端返回的图片URL
            console.log(res.data);
            var resdata  = JSON.parse(res.data);
            that.setData({
              db_photo:resdata.url,
            })
            var value = 1;
            resolve(value);
          }
        })
      } else {}
    }).then(res => {
      // success
      console.log(that.data)
      console.log(res)
      wx.request({
        url: 'https://api.fracher21.top/spotit/createanimal',
        method: "POST",
        data: {
          // 创建动物只需填写name和race即可，其余信息在创建时将被设为默认
          // 填写其他信息，在创建后请求更新动物信息接口（[5] updateanimal）
          token: app.globalData.token,
          name: this.data.name,
          race: this.data.type,
          // race目前可以填写：dog, cat, bird, insect；要是还有别的。。。再说吧
        },
        success: (res) => {
          console.log(res.data)
          var id = res.data.id;
          if (that.data.db_photo != '') {
            that.singleSet("head", that.data.db_photo, id);
          } else {}
          that.singleSet("desc", that.data.desc, id);
          that.singleSet("locdesc", that.data.locdesc, id);
          this.setData({
            desc: '',
            locdesc: '',
            name: '',
            photo: '',
            type: '',
          })
        }
      })
      // wx.navigateTo({
      //   url: '/pages/sharePage/sharePage',
      //   //后续应在options里写进来的url，让它返回原来界面
      // })
    });
    wx.showToast({
      title: '上传成功',
      icon: 'success',
      duration: 2000,
    })

  },
  singleSet(field, value, id) { //更新动物单个属性
    wx.request({ //增加更多xinx
      url: 'https://api.fracher21.top/spotit/updateanimal',
      method: "POST",
      data: {
        id: id,
        token: app.globalData.token,
        field: field,
        // field 只能是以下之一：
        // name, race, head, locdesc, desc
        value: value
        // 如果field是race，value只能是以下之一：
        // dog, cat, bird, insect
      },
      success: (res) => {
        // console.log(res.data)
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // console.log(options)
    this.setData({
      user: options,
    })
    // console.log(this.data.user)
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})